package com.cmes.system.core.constant;

import com.cmes.core.ResponseCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * 错误码
 * <p>
 * 系统管理使用编码范围：
 * </p>
 *
 * @author Bruce.Gong
 * @since 1.0.0-SNAPSHOT
 */
@RequiredArgsConstructor
@Getter
public enum ErrorCode implements ResponseCode {

    // 配置管理
    CONFIG_NOT_EXISTS     ("100101", "配置不存在或者已删除!"),
    CONFIG_CODE_EXISTS    ("100102", "该配置编码已存在!"),
    CONFIG_IS_SYS         ("100103", "配置%s是系统配置，不能%s!"),

    // 字典管理
    DICT_NOT_EXISTS       ("100201", "字典不存在或者已删除!"),
    DICT_CODE_EXISTS      ("100202", "该字典编码已存在!"),
    DICT_IS_SYS           ("100203", "字典%s是系统字典，不能%s!"),
    DICT_ITEM_NOT_EXISTS  ("100211", "字典项不存在或者已删除!"),
    DICT_ITEM_KEY_EXISTS  ("100212", "该字典项编码已存在!"),

    // 角色管理
    ROLE_NOT_EXISTS       ("100301", "角色不存在或者已删除!"),
    ROLE_CODE_EXISTS      ("100302", "该角色编码已注册!"),
    ROLE_IS_SYS           ("100303", "角色%s是系统角色，不能%s"),

    ROLE_DISABLED         ("100304", "角色已停用!"),
    ROLES_DISABLED        ("100305", "角色%s已停用，请不要重复操作"),
    ROLES_ENABLED         ("100306", "角色%s状态正常，请不要重复操作!"),
    ROLE_HAS_USER         ("100307", "角色存在用户，不能%s"),

    // 部门管理
    DEPT_NOT_EXISTS       ("100401", "部门不存在或者已删除!"),
    DEPT_NAME_EXISTS      ("100402", "该部门名称已存在!"),
    DEPT_PARENT_NOT_EXISTS("100403", "父部门不存在或者已删除!"),
    DEPT_PARENT_DISABLED  ("100404", "父部门已停用!"),
    DEPT_PARENT_PERSONAL  ("100405", "父部门不能为个人类型!"),
    DEPT_HAS_CHILDREN     ("100406", "该部门包含子部门!"),
    DEPT_DISABLED         ("100407", "该部门已停用!"),
    DEPTS_DISABLED        ("100408", "部门%s已停用，请不要重复操作"),
    DEPTS_ENABLED         ("100409", "角色%s状态正常，请不要重复操作!"),
    DEPT_HAS_MEMBER       ("100410", "该部门包含成员!"),

    // 菜单管理
    PERM_NOT_EXISTS       ("100501", "菜单不存在或者已删除!"),
    PERM_PARENT_NOT_EXISTS("100502", "上级菜单不存在或者已删除!"),
    PERM_PARENT_DISABLED  ("100503", "上级菜单已停用!"),
    PERM_PARENT_BUTTON    ("100504", "上级菜单不能为按钮类型!"),
    PERM_HAS_CHILDREN     ("100505", "该菜单包含子菜单，不能为按钮类型!"),
    PERM_DISABLED         ("100506", "该菜单已停用!"),
    PERMS_DISABLED        ("100507", "选择的菜单部分状态为已停用，请不要重复操作!"),
    PERMS_ENABLED         ("100508", "选择的菜单部分状态为正常，请不要重复操作!"),

    // 用户管理
    USER_NOT_EXISTS       ("100601", "帐号不存在或者已删除!"),
    USER_NAME_EXISTS      ("100602", "该用户名已注册!"),
    USER_MOBILE_EXISTS    ("100603", "该手机号已注册!"),
    USER_DISABLED         ("100604", "该帐号已冻结!"),
    USER_IS_SYS           ("100604", "用户%s是系统用户，不能%s!"),
    USERS_DISABLED        ("100605", "帐号%s已停用，请不要重复操作"),
    USERS_ENABLE          ("100606", "帐号%s状态正常，请不要重复操作!"),

    OLD_PWD_NO_MATCH      ("100701", "原密码不正确!"),
    ;


    private final String code;
    private final String message;

}
